#ifndef NANE_ZIPFILEBASE_H
#   define NANE_ZIPFILEBASE_H

#   include "nane/FileArchiveSystem/ZIP/ZIPFileArchive.h"
#   include "nane/core/SubSystemProduct.h"
#   include "nane/core/assert.h"

namespace nane
{
    class ZIPFileBase
        : public SubSystemProductImplBase<ZIPFileArchive, InputSeekablePtr, IReadFile>
    {
    public:
        ZIPFileBase( ZIPFileArchive* _creator, const InputSeekablePtr& _input, uint32 _beginPos, uint32 _size )
            : SubSystemProductImplBase<ZIPFileArchive, InputSeekablePtr, IReadFile>( _creator, _input )
            , m_beginPos( _beginPos )
            , m_size( _size )
        {
            NANE_ASSERT( interface != NullPtr, "Input must be valid" );
        }

    protected:
        uint32 m_beginPos;
        uint32 m_size;
    };
}   // namespace nane

#endif  // NANE_ZIPFILEBASE_H
